home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / lib / mathlib / README
Encoding:
Text File  |  1994-08-02  |  10.6 KB  |  235 lines

  1.  
  2.  
  3.          -----------------------------------------------------------
  4.          Explanation of the contents of ~4Dgifts/toolbox/lib/mathlib
  5.          -----------------------------------------------------------
  6.  
  7.         The math libraries included herein have been updated to Irix 5.1. 
  8.         Everything has been recompiled and tested.  Different versions 
  9.         have been added for mips1 and mips2, serial and parallel.  The 
  10.         BLAS .a file's have been pulled out since they are available with 
  11.         the Irix 5.1 compilers.
  12.  
  13.  
  14.         This subtree contains examples and demos for 3 math libraries,
  15.     libblas.a, libconv.a and libfft.a, as well as the libraries
  16.     libconv.a and libfft.a, a parallel implementation of a Merge-Sort
  17.     Algorithm, psort, and skylib.a, a library of Fortran 77 routines 
  18.     for solving banded linear systems of equations with variable band
  19.     width.
  20.  
  21.         The following is lifted out of libblas/README, libconv/README,
  22.     libfft/README, psort/README, and skyline/README respectively:
  23.  
  24.  
  25.  
  26. =======
  27. libblas
  28. ============================================================================
  29. This directory contains the test programs, a demo program and the original
  30. source code for the BLAS (Basic Linear Algebra Subprograms). Optimized and
  31. parallelized versions of the BLAS for SGI platforms are available in a
  32. library, libblas. This library is provided with the SGI compilers and there
  33. are 4 different versions. The BLAS are also available in SGI's Scientific 
  34. Library "complib", which is available with the Fortran 4.0+ compiler.
  35.  
  36.   /usr/lib/libblas.a:           compiled with "-O2 " flags,
  37.                                 will run on all systems.
  38.                                 This is NOT a parallel version.
  39.  
  40.   /usr/lib/libblas_mp.a:        compiled with "-O2 -mp"
  41.                                 will run on all systems.
  42.                                 Requires Fortran compilers since it uses 
  43.                                 the Fortran MP library.
  44.                                 This version will run in parallel on 
  45.                                 Power Series systems.
  46.  
  47.   /usr/lib/mips2/libblas.a:     compiled with "-O2 -mips2 " flags,
  48.                                 will run only on systems with R4000 CPUs,
  49.                                 This is NOT a parallel version.
  50.                                            
  51.   /usr/lib/mips2/libblas_mp.a:  compiled with "-O2 -mips2 -mp" flags,
  52.                                 will run only on systems with R4000 CPUs,
  53.                                 Requires Fortran compilers since it uses
  54.                                 the Fortran MP library.
  55.                                 This version will run in parallel on
  56.                                 Challenge and Onyx systems.
  57.                                            
  58.  
  59. BLAS : Basic Linear Algebra Subprograms
  60.        There are three levels of BLAS:
  61.  
  62.        Level 1 BLAS: for vector operations such as  y <- alpha*x + y
  63.        Level 2 BLAS: for matrix vector ops such as  y <- alpha*A*x + beta*y
  64.        Level 3 BLAS: for matrix-matrix ops such as  C <- alpha*A*B + beta*C
  65.  
  66.        Here A, B and C are matrices, x and y are vectors and alpha and beta
  67.        are scalars.
  68.  
  69.        [ . . . ]
  70.  
  71. LINPACK is a Fortran set of subroutines which analyze and solve various
  72.         systems of simultaneous linear algebraic equations. It uses a
  73.         subset of the Level 1 BLAS.
  74.  
  75. LAPACK (Linear Algebra PACKage) puts together a new set of linear algebra
  76.         functions, supposed to supplant both LINPACK and EISPACK packages.
  77.         To achieve maximum efficiency across all types of hardware, the
  78.         LAPACK routines are based on matrix-matrix BLAS 3 routines (e.g.
  79.         DGEMM). This implementation is much more performant than anything
  80.         based on vector-vector Level 1 BLAS routines (e.g. DAXPY), or even
  81.         matrix-vector Level 2 BLAS routines (e.g. DGEMV).
  82.  
  83. The directory ludec contains an example program that graphically demonstrates
  84. the performance difference between the LU factorization in LINPACK, and the
  85. corresponding routine from LAPACK. To create the program, modify the Makefile
  86. to use the correct libblas version for your machine. Then, simply type make
  87. in the ludec directory. Type RUNTEST to run it.
  88.  
  89.  
  90.  
  91.  
  92. =======
  93. libconv
  94. ============================================================================
  95.  
  96. LIBCONV is an optimized library available on Silicon Graphics computers.
  97. It features Convolutions for Finite Impulse Response (FIR) and Infinite
  98. Impulse Response (IIR) filters, together with correlations. The library
  99. modules take 1D and 2D inputs and are available in single and double
  100. precision for real and complex arithmetic. The 2D subroutines have been
  101. parallelized and take full advantage of SGI's parallel architecture.
  102.  
  103. The library comes in three formats:
  104.  
  105. o mips1: compilation flags -O2,
  106.         will run on all systems,
  107.         can be link with C or Fortran compilers.
  108.         This is NOT a parallel version.
  109.  
  110. o mips2: compiled with the "-O2 -mips2" flags,
  111.         will run only on systems with R4000 CPUs,
  112.         can be used with both C and Fortran compilers.
  113.         This is NOT a parallel version.
  114.  
  115. o mp_mips1: compiled "-O2 -mp"
  116.         will run all systems.
  117.         Requires Fortran compilers since it uses the Fortran MP library.
  118.         This version will run in parallel on Power Series systems.
  119.  
  120.  
  121. The EXAMPLES directory contains examples of programs, both in C and in
  122. Fortran, using LIBCONV modules.
  123.  
  124.  
  125.  
  126.  
  127. ======
  128. libfft
  129. ============================================================================
  130. #       libfft includes one, two and three dimensional FFTs                 #
  131. #                   complex <---> complex                                   #
  132. #                   real    <---> complex                                   #
  133. #                   single and double precision,                            #
  134. #                   2D and 3D are parallel                                  #
  135. #                                                                           #
  136. #       libfft uses a "row-column" algorithm, and it is based on 1D FFTs    #
  137. #                   from FFTPACK                                            #
  138. #                                                                           #
  139. #       FFTPACK is a 1D FFTs package written by Paul N Swarztrauber         #
  140. #           at   National Center for Atmospheric Research  Boulder,CO       #
  141. Libfft Version 2.3 is very similar to Version 2.2,
  142. the only changes made fix a minor bug with SFFT2DU and DFFT2DU.
  143.  
  144. The current library comes in four formats:
  145.  
  146. o mips1: compilation flags -O2,
  147.         will run on all systems,
  148.         can be link with C or Fortran compilers.
  149.         This is NOT a parallel version.
  150.  
  151. o mips2: compiled with the "-O2 -mips2" flags,
  152.         will run only on systems with R4000 CPUs,
  153.         can be used with both C and Fortran compilers.
  154.         This is NOT a parallel version.
  155.  
  156. o mp_mips1: compiled "-O2 -mp"
  157.         will run all systems.
  158.         Requires Fortran compilers since it uses the Fortran MP library.
  159.         This version will run in parallel on Power Series systems.
  160.  
  161. o mp_mips2: compiled "-O2 -mips2 -mp" (ELF format)
  162.         will run all Challenge and Onyx systems only.
  163.         Requires Fortran compilers since it uses the Fortran MP library.
  164.         This version will run in parallel.
  165.  
  166. Note the "mp_mips2" versions was compiled under Irix5.0 and the corresponding
  167. compilers. The object files use the new ELF format, while the other three
  168. versons of the library use the classical COFF format.
  169.  
  170.  
  171.  
  172.  
  173. =====
  174. psort
  175. ============================================================================
  176. *       PSORT is Parallel implementation of the Merge-Sort Algorithm.         *
  177. *                                                                             *
  178. *       Sub-arrays of doubling size are iteratively merge together,           *
  179. *       until the whole array is sorted.                                      *
  180. *       Hence at each of the Log(N) steps N/2, N/4, N/8 ... 1 Merge(s)        *
  181. *       are performed independantly.                                          *
  182. *       To  get even more parallelism, the final Merges are split into        *
  183. *       independant submerges                                                 *
  184. *                                                                             *
  185. *       The "psort" calling sequence is the same as for the C Library "qsort" *
  186. *                                                                             *
  187. *       psort( base, nel, size, compar)                                       *
  188. *                                                                             *
  189. *       base:   array of elements to be sorted,                               *
  190. *       nel:    number of elements to be sorted,                              *
  191. *       size:   size of each element in byte,                                 *
  192. *       compar: pointer to a function that compare 2 elements.                *
  193. *               compar takes 2 pointers to elements as arguments              *
  194. *                  and returns an integer. The integer returned is:           *
  195. *                       < 0 if first element is smaller than the second       *
  196. *                      == 0 if first element is equivallent to  the second,   *
  197. *                       > 0 if first element is larger than the second.       *
  198. *                                                                             *
  199. *                                                                             *
  200. *       -----------------------------------------------------------------     *
  201. *       *  To use PSORT, you must have Power C installed on your IRIS.  *     *
  202. *       -----------------------------------------------------------------     *
  203.  
  204.  
  205.  
  206.  
  207. =======
  208. skyline
  209. ============================================================================
  210.                                  SKYLIB
  211.                                            
  212. SKYLIB is a library of Fortran 77 routines for solving linear systems
  213. of equations where the matrix is banded, with the bands varying in
  214. width, stored in a packed form known as skyline. These routines handle
  215. two types of matrices: symmetric (LDL**T factorization) and symmetric
  216. in shape, but not in values (LU factorization). Further details can
  217. be found below.
  218.  
  219.    [ . . . ]
  220.  
  221.  
  222. The routines for the skyline solver operate on matrices that are
  223. banded and symmetric in form and in values. The operations performed
  224. are the triangular factorization LDL(t) WITHOUT pivoting of
  225. matrices and the solution of simultaneous linear equations.
  226.  
  227.  
  228.    [ . . . ]
  229.  
  230. ( Note: The routines should be linked to the blas library by including
  231.   ----  -lblas on the link command.  Also, the system parameters need
  232.   to be initialized before the factorization routines are called. )
  233.  
  234.  
  235.